package my.test;

import java.util.Base64;
import java.util.HashMap;
import java.util.Map;

/**
 给你一个整数columnNumber ，返回它在 Excel 表中相对应的列名称。

 例如：
 A -> 1
 B -> 2
 C -> 3
 ...
 Z -> 26
 AA -> 27
 AB -> 28
 ...
 

 示例 1：
 输入：columnNumber = 1
 输出："A"

 示例 2：
 输入：columnNumber = 28
 输出："AB"

 示例 3：
 输入：columnNumber = 702
 输出："ZZ"

 示例 4：
 输入：columnNumber = 2147483647
 输出："FXSHRXW"

===============

 给定一种规律 pattern和一个字符串str，判断 str 是否遵循相同的规律。

 这里的遵循指完全匹配，例如，pattern里的每个字母和字符串str中的每个非空单词之间存在着双向连接的对应规律。

 示例1:

 输入: pattern = "abba", str = "dog cat cat dog"
 输出: true
 示例 2:

 输入:pattern = "abba", str = "dog cat cat fish"
 输出: false
 */
public class Main_1 {

    public static void main(String[] args) {
        byte[] bytes = new byte[16];
        for (byte aByte : bytes) {
            System.out.println(aByte);
        }
        System.out.println("----");
        String string = Base64.getEncoder().encodeToString(bytes);
        System.out.println(string);

        System.out.println("----");


        System.out.println("对称密钥： "+bytesToHex(Base64.getDecoder().decode("5noWH0MJ7xd6vwTfcmsQjA==")));
        System.out.println("初始向量： "+bytesToHex(Base64.getDecoder().decode("x3x36FBrFAPPkHVYPdRE1w==")));
        System.out.println("----");
        System.out.println("明文： "+stringToHex("硅谷12"));
    }


    // 字节数组转换成十六进制
    private static String bytesToHex(byte[] digestResult) {
        StringBuilder sb = new StringBuilder();
        for (byte b : digestResult) {
            // 转成 16进制

            String s = Integer.toHexString(b & 0xff);
            // System.out.println(s);
            if (s.length() == 1){
                // 如果生成的字符只有一个，前面补0
                s = "0"+s;
            }
            sb.append(s.toUpperCase());
        }
        return sb.toString();
    }
    // 十六进制转换成字节数组
    // private static String hexToString(String hexStr){
    //
    // }

    // 明文字符串转换成十六进制
    private static String stringToHex(String input){
        byte[] bytes = input.getBytes();
        return bytesToHex(bytes);
    }

    private static boolean getResult(String pattern,String str) {


        String[] strArray = str.split(" ");
        boolean res = false;
        int x = 0;
        int y = strArray.length-1;
        for (int i = 0; i < strArray.length; i++) {
            if(strArray[x].equals(strArray[y])){
                res = true;
                x = i+1;

            }else {
                res = false;
            }
        }
        return res;
    }

}
